#ifndef SLIDEPAINTBOX_H
#define SLIDEPAINTBOX_H
#include "lp_types.h"
#include "slidemodel.h"

class SlidePaintBox
{
    //A collection of static methods that contain the procedure for drawing a dynamic lineplan component
    //---
    //The notion of 'painting' or 'drawing' in this case is a misnomer, each method simply takes some data
    //sources as input and a Slide Model as output, and generates a bunch of XML tags which will be displayed
    //by a viewing class.
    //The methods are static so as to reinforce their responsibilities as procedural operations
public:

    //One can infer the method arguments as "Generation Parameters", "Destination" and "Data"
    static void PaintLinePlan(TupleItr dynEm, SlideModel& model, std::vector<StopData>& stopList, StopItr& stop);
    static void PaintMultiText(TupleItr dynEm, SlideModel& model, std::vector<StopData>& stopList, StopItr& stop, std::string routeID);
    static void PaintGraphicsFrame(TupleItr dynEm, SlideModel& model, std::vector<StopData>& stopList, StopItr& stop);
};

#endif // SLIDEPAINTBOX_H
